The present invention generally relates to data processing systems and program controls for managing discrete service support and implementation. More specifically, the present invention is directed to a new sophisticated application service and client-server architecture for managing the access and communication across a plurality of interconnected computers including network servers and mainframes, with data and application access via a public network such as the Internet.
The recent and explosive growth of online communications using computers to link into vast networks has dramatically changed the landscape as it relates to the way certain firms do business. Traditional modes of distributing information to employees and customers are being displaced with the new paradigm created by remote computer links to networks for a full spectrum of information services. Customers are now able to access account information and projections, salesmen access updated news and customer reports, and management communicates to staff and vendors in a simplified and uniform manner using the Internet and now well established browser technology.
This growth in the new applications of online communications has placed new demands on existing computer systems operated by the business and service organizations attempting to take advantage of online service access. Smaller companies have mostly farmed out their new online data demands to Internet service providers (ISPs), that provide a narrow set of online data distribution tools and capabilities. This, however, is not a solution for larger, integrated service firms as their current and future demands for data processing and distribution across linked networks and the Internet require sophisticated systems that include the ability to expand in a seamless and relatively painless manner.
This is particularly true for large financial service companies. These firms provide a full spectrum of diverse financial services to a broad group of clients, both national and international, with regional offices spread throughout the country and in most major international markets. Existing computer systems include large and powerful mainframe computers with strong centralized data processing capabilities, and in conjunction with these mainframes, one or more networks (LAN and/or WAN structures) linking together rings of PC-based workstations.
These existing computer systems have evolved over the years with the newer software systems integrated within the legacy software applications. Accordingly, present computer systems include older programs and databases intermixed with more recent software systems, such as computer networks. Applications, data, and capabilities are thus spread amongst these various hardware systems each of which involves a level of independent operation and has a unique interface.
This environment has created a variety of problems in attempting to implement the above-noted online capabilities for system wide access. Programmers developing new services linking to a home page or the like must provide all the programming to effect the service and navigate the intricacies of the network environment.
To expedite the programming of new services that are able to take advantage of Internet based communications, a common architecture that provides the requisite communication protocols for network implementation would substantially reduce the amount of time and effort required to build new applications and services. A common architecture provides the appropriate interface structures for allowing different programs to communicate with each other and pass data therebetween.
Efforts to develop a common architecture that allows the free flow of data and permits seamless communication and scaling have met with mixed results. Products exist that provide some of the above functionality, such as DCE (distributed computing environment), CORBA (common object request broker architecture), and DCOM (distributed common object module). These systems provide meaningful advance but suffer problems in terms of handling legacy applications and overhead requirements.
Recently, the inventors here developed a system having singular functionality called the Workstation Host Access Manager (WHAM), which was a service that permitted access to mainframe CICS applications, 3270 terminal access, and IBM(copyright)""s External Call Interface (ECI). This application has been a successful implementation, but is narrowly focused. Indeed, the present invention is based on the basic approach undertaken in WHAM, but expanded to address numerous ancillary environments and provide a more robust system design framework.
It is an object of the present invention to provide a system architecture that aggregates the coding into a single executable that is common to a diverse group of services to permit more robust and efficient service implementation.
It is also an object of the present invention to provide a data processing system for managing implementation of an expanding online capability that provides access to existing legacy programming and applications.
It is another object of the present invention to provide service based environment for online system support that provides access to a given application by replicating the application service on another linked computer (horizontal scaling) with traffic load automatically balanced between multiple servers.
It is another object of the present invention to provide a set of protocols that are used in developing and expanding software applications so that operation can proceed via Internet access from remotely located subscribers.
It is yet another object of the present invention to provide a data processing system that permits fault tolerance via the use of multiple instances of the same application of linked network servers. If any service fails, application traffic is automatically routed by the controller to a functioning version of the same service.
It is still another object of the present invention to provide a network controller for routing messages around the system infrastructure, performing load balancing, and maintaining schedules and directories on the system and its administration.
It is yet another object of the present invention to provide an integrated logging function that communicates with the operating system event logger to track user application use and system demand.
The above and other objects of the present invention are accomplished by a novel computer system that supports architecture for implementing and managing a modular message-based infrastructure that allows for development of online seamless services and applications. The new system is predicated on four functional interrelated capabilities. The first is the Framework APIxe2x80x94or application program interfacexe2x80x94and represents the function set necessary to allow interoperability of new applications and services by providing a common support for TCP and UDP messages and asynchronous responses. This is in conjunction with the xe2x80x9cFrameworkxe2x80x9d, an executable program which provides thread management, connection management, and multi-casting in a multi-processing, multi-threaded environment, and defines the interface to the service specific functions. Next, is the Router, and this subsystem manages the interactions between system components much like an air-traffic controller, and routes the messages amongst the various system components. The Router is itself implemented using the Framework. In the case of the Routing Service, the service specific DLL (router.dll) implements a routing service that maintains a directory of available system services and pools TCP connections to these services. A Router service specific DLL (router.dll) uses some of the same components used to implement the Framework API. Finally, events are tracked using a system Logger, which provides historical data to permit debugging and other critical system maintenance functions.
In accordance with the varying aspects of the present invention, system architecture operates in a client-server environment with a plurality of individual services resident on one or more servers in the network. Clients operate within the network and access these services by initiating an instance of the Framework API, which allows network communication to the Framework supported services, associated with the application-specific DLL""s necessary to permit access to the service and internetwork communication.
The Framework provides a standard, common body of code which supports existing services predicated on the service supporting DLL""s. The Framework reads its configuration parameters at startup. Based thereon, the supporting services are instigated in accordance with availability. In the background, a heartbeat message is broadcast on the network, identifying and prioritizing available services.
The Framework Architecture consists of four attributes. The first is the skeletal service executable program, that forms the standard common body of code mentioned above, that supports new NT services on the network. The second attribute is an Abstract Base Classxe2x80x94ABCxe2x80x94an object template that defines the interface between the skeletal service program and the specific DLLs needed for service implementation. Third, the Framework includes a class that implements the minimal service message. And finally, the Framework includes support for message multi-casting (including broadcast and uni-cast) wherein the multi-casted message comprises network address and status information. As discussed above, the Framework requires a corresponding API (the Framework API) for its operation within the network.
The fundamental advantage of using the Framework resides in the speed in which new services may be added to the system. Since the Framework will include the coding needed to support interactions with the operating system for implementing TCP and UDP communications for a given service, the developer of that service access can avoid rewriting the complex communication code common to IP-based services. Once the functions of the Framework are understood, the developer creates new service access by preparing the service DLL that conforms to the Framework interface, and supplying the registry configuration keys. This is enhanced by customizing and extending the minimal message class object. The developer may choose to either inherit from or wrap the existing Framework API, to provide a simpler interface to their service.
The foregoing features of the present invention are best understood in the context of a specific illustrative embodiment thereof, taken in conjunction with the following diagrams, of which: